package com;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author li
 * @since 2024/5/13
 */
public class HelloController implements Controller {

    /**
     * 通过实现controller接口的方式定义一个controller，url访问地址基于xml配置的方式
     * 此方法handleRequest，在请求的url找到了对象的controller类之后被回调
     * Controller接口的方法
     * @param request 请求
     * @param response 响应
     * @return 返回 ModelAndView
     *                  - 模型：表示数据，可以绑定在ModelAndView上
     *                  - 视图：表示一个数据展示的页面，如JSP
     * @throws Exception 异常
     */
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 前端请求路径为 /hello 前端返回msg Hello MVC
        // 创建
        ModelAndView modelAndView = new ModelAndView();
        // 绑定数据
        modelAndView.addObject("msg", "Hello MVC");
        /*
         * 绑定jsp  完整路径，但是可以在视图解析器配置前缀后缀 所以可以简写
         *      - 前缀： /WEB-INF/
         *      - 后缀：.jsp
         */
        modelAndView.setViewName("hello");
        return modelAndView;
    }
}
